Importar bibliotecas¶

In [3]:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
import plotly.express as px
import seaborn as sns   # biblioteca de graficos
import matplotlib.pyplot as plt    # biblioteca de graficos

Carregar, tratar e visualizar base de dados¶

In [4]:
# Carregar base de dados
df = pd.read_excel(r'C:\Users\Samsung\Desktop\TREINAMENTO\formulario google\Pesquisa sobre Mercado de trabalho  (respostas).xlsx')

# tratar base de dados

df = df.rename(columns={'Qual a sua idade?': 'Idade', 'Qual estado você trabalha?': 'Estado', 
                        'Como você chega até seu local de trabalho?': 'Meio_tranporte', 
                        'Quanto tempo em média leva para chegar até o local de trabalho?': 'Tempo_Deslocamento',
                       'Qual sua renda mensal?': 'Renda_mensal', 'Qual sua expectativa de salário para daqui a 5 anos?': 'Expectativa_salarial',
                       'Você possui outra fonte de renda além de seu trabalho?	': 'Renda_extra', 'Vocé é ansioso (a) ?': 'Ansioso',
                       'Se sim, isso te afeta no dia a dia de trabalho?': 'Ansiendade_afeta', 'Você acredita que o lider/gestor afeta seu desenvolvimento e desempenho?': 
                       'Desempelho_lider', 'Você se considera um profissional com autonomia?\n\nUma pessoa autônoma no trabalho é aquela que tem certa liberdade para agir onde trabalha. Isso não significa que só faça o que quer e quando quer, mas que pode cumprir suas tarefas de acordo com a sua autogestão.': 
                       'autonomo', 'Você  se considera   um  profissional  generalista ou especialista?\n\nO profissional generalista domina diversos assuntos dentro de várias áreas de atuação. Já o especialista domina tudo sobre uma área específica de atuação': 'Classificacão',
                       'Qual o tempo máximo que já ficou em um emprego/trabalho?': 'Tempo_carteira', 'Nos dias atuais, acredita ser fácil trocar de emprego?': 'Faci_relocacao', 'Qual sua área de atuação?\nExempo:  Com uma palavra como:  Logistica, Vendas, Limpeza,  Administração , TI entre outras...':
                       'Area', 'Você possui outra fonte de renda além de seu trabalho?': 'Renda_extra', 'Acredita ganhar o suficiente no emprego/trabalho atual?\n\n trabalho está ligado a objetivos e realizações profissionais, emprego é simplesmente uma forma de conseguir renda': 
                       'Conformidade_salario', 'Procura buscar conhecimento extra para que seus objetivos profissionais sejam alcançados?': 'atv_extra', 'Com palavras chaves, oque te motivou sair do último emprego?\nExempo: gestão desqualificada, exploração, remuneração entre outras': 
                       'mud_emprego', 'O que te motiva entrar em uma empresa?': 'Motiv_entrar', 'O que te motiva sair em uma empresa?': 'Motiv_sair', 'Qual seu nível de maior escolaridade concluída?':'Escolaridade', 'Quantas vezes ja mudou de emprego?': 'Mudanca_emprego'})



# tratar string

df["Expectativa_salarial"] = df["Expectativa_salarial"].astype(int)
df.Renda_mensal = df.Renda_mensal.replace('Entre R$ 2.000,00 a R$ 4000,00', 'Entre R$ 2.001,00 a R$ 4000,00')
df.loc[df.Ansioso == 'Não', ['Ansiendade_afeta']] = 'Não sou ansioso'
df.loc[(df.Ansiendade_afeta == 'Não sou ansioso') & (df.Ansioso == 'Sim'), ['Ansiendade_afeta']] = 'Não'
df.Area = df.Area.str.strip()
df.Escolaridade = df.Escolaridade.str.strip()
df.loc[(df.Escolaridade == 'Superior incompleto') | (df.Escolaridade == 'Ensino superior incompleto') | (df.Escolaridade == 'Superior incompleto') | (df.Escolaridade == 'Ensino superior incompleto') | (df.Escolaridade == 'Estou cursando o ensino superior')  | (df.Escolaridade == 'Ensino superior incompleto'), ['Escolaridade']] = 'Ensino Médio'
df.loc[(df.Meio_tranporte == 'Remoto'), ['Meio_tranporte']] = 'home office'
df = df.drop(columns=['Carimbo de data/hora', 'Endereço de e-mail'])

# visualizar base de dados
df.head(5)
Out[4]:
Idade Estado Meio_tranporte Tempo_Deslocamento Area Renda_mensal Expectativa_salarial Renda_extra Conformidade_salario Ansioso ... Escolaridade Motiv_entrar Motiv_sair mud_emprego Faci_relocacao Mudanca_emprego Tempo_carteira Classificacão autonomo Desempelho_lider
0 Entre 19 a 25 anos GO Condução própria home office Licenciatura Estou desempregado 7000 Sim Estou desempregado Sim ... Ensino Médio Salário, Inclusão, Valores, Beneficios Salário, Propósito, Falta de reconhecimento, E... Nunca trabalhei Não Até 3 vezes Menos de 6 meses Generalista Sim Sim
1 Entre 26 a 30 anos GO Transporte da empresa Meia hora Outras Menos de R$ 1.500,00 8000 Não Não Sim ... Ensino Superior Salário, Perspectivas de carreira Falta de reconhecimento Gestão desqualificada Não De 4 a 8 vezes Entre 12 meses a 24 meses Generalista Não Sim
2 Entre 31 a 40 anos GO Condução própria Meia hora Vendas Entre R$ 1.500,00 e R$ 2.000,00 2500 Não Sim Sim ... Ensino Médio Perspectivas de carreira Valores Gestão desqualificado Não Até 3 vezes Entre 12 meses a 24 meses Especialista Sim Em partes
3 Entre 19 a 25 anos GO Transporte da empresa Meia hora Alimentos Menos de R$ 1.500,00 2500 Não Não Sim ... Ensino Médio Salário, Perspectivas de carreira, Beneficios Falta de reconhecimento, Exploração de mão de ... Outra proposta Não Até 3 vezes Entre 6 a 12 meses Generalista Talvez Em partes
4 Entre 31 a 40 anos GO Condução própria Meia hora Entregadora Menos de R$ 1.500,00 5000 Não Não Sim ... Ensino Médio Beneficios Desvio de função, Falta de reconhecimento, Exp... Pandemia Não De 4 a 8 vezes Mais de 36 meses Generalista Não Sim

5 rows × 22 columns

In [5]:
# verificar informações da base de dados
N_pesquisa = len(df.Idade)
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 61 entries, 0 to 60
Data columns (total 22 columns):
 #   Column                Non-Null Count  Dtype 
---  ------                --------------  ----- 
 0   Idade                 61 non-null     object
 1   Estado                61 non-null     object
 2   Meio_tranporte        61 non-null     object
 3   Tempo_Deslocamento    61 non-null     object
 4   Area                  61 non-null     object
 5   Renda_mensal          61 non-null     object
 6   Expectativa_salarial  61 non-null     int32 
 7   Renda_extra           61 non-null     object
 8   Conformidade_salario  61 non-null     object
 9   Ansioso               61 non-null     object
 10  Ansiendade_afeta      61 non-null     object
 11  atv_extra             61 non-null     object
 12  Escolaridade          61 non-null     object
 13  Motiv_entrar          61 non-null     object
 14  Motiv_sair            61 non-null     object
 15  mud_emprego           61 non-null     object
 16  Faci_relocacao        61 non-null     object
 17  Mudanca_emprego       61 non-null     object
 18  Tempo_carteira        61 non-null     object
 19  Classificacão         61 non-null     object
 20  autonomo              61 non-null     object
 21  Desempelho_lider      61 non-null     object
dtypes: int32(1), object(21)
memory usage: 10.4+ KB

Analise estatíticas¶

In [6]:
# DADOS estatístico string object, numero de resposta e sua moda.

df.select_dtypes('object').describe().transpose()
Out[6]:
count unique top freq
Idade 61 5 Entre 19 a 25 anos 30
Estado 61 6 GO 55
Meio_tranporte 61 5 Condução própria 40
Tempo_Deslocamento 61 5 Meia hora 47
Area 61 49 Vendas 9
Renda_mensal 61 5 Menos de R$ 1.500,00 22
Renda_extra 61 2 Não 46
Conformidade_salario 61 3 Não 36
Ansioso 61 2 Sim 53
Ansiendade_afeta 61 3 Sim 38
atv_extra 61 2 Sim 58
Escolaridade 61 6 Ensino Médio 29
Motiv_entrar 61 28 Perspectivas de carreira 13
Motiv_sair 61 33 Falta de reconhecimento 11
mud_emprego 61 47 Remuneração 8
Faci_relocacao 61 2 Não 50
Mudanca_emprego 61 3 Até 3 vezes 45
Tempo_carteira 61 5 Mais de 36 meses 29
Classificacão 61 2 Generalista 44
autonomo 61 3 Sim 40
Desempelho_lider 61 3 Sim 31

Resumo da base de dados¶

In [7]:
# contagem e analise exploratoria de dados

print("faixa etária de idade das amostras")
print(df.Idade.value_counts(normalize=True).map("{:.1%}".format))
print("-"*60)
print("contar numero de Estado onde as amostras trabalham ")
print(df.Estado.value_counts(normalize=True).map("{:.1%}".format))
print("-"*60)
print("Meio de transporte que as amostras usa para ir trabalhar")
print(df.Meio_tranporte.value_counts(normalize=True).map("{:.1%}".format))
print("-"*60)
print("Tempo de deslocamento que as amostra usa para irem trabalhar")
print(df.Tempo_Deslocamento.value_counts(normalize=True).map("{:.1%}".format))
print("-"*60)
print("Area de atuação das amostras")
print(df.Area.value_counts(normalize=True).map("{:.1%}".format))
print("-"*60)
print("Faixa salarial das amostras")
print(df.Renda_mensal.value_counts(normalize=True).map("{:.1%}".format))
print("-"*60)
print("Faixa de expectativa salarial após 5 anos")
print(df.Expectativa_salarial.value_counts(normalize=True).map("{:.1%}".format))
print("-"*60)
print("Número de amostra que cotém renda extra")
print(df.Renda_extra.value_counts(normalize=True).map("{:.1%}".format))
print("-"*60)
print("Número de amostra que acredita receber o salario suficiente")
print(df.Conformidade_salario.value_counts(normalize=True).map("{:.1%}".format))
print("-"*60)
print("Número de amostra que são ansiosos")
print(df.Ansioso.value_counts(normalize=True).map("{:.1%}".format))
print("-"*60)
print("Número de amostra que são afetada pela ansiendade")
print(df.Ansiendade_afeta.value_counts(normalize=True).map("{:.1%}".format))
print("-"*60)
print("Número de amostra que buscam aprimorar conhecimento")
print(df.atv_extra.value_counts(normalize=True).map("{:.1%}".format))
print("-"*60)
print("Grau de escoladirade das amostra")
print(df.Escolaridade.value_counts(normalize=True).map("{:.1%}".format))
print("-"*60)
print("Numero de amostra que acreditar sobre facilidade de relocação de emprego")
print(df.Faci_relocacao .value_counts(normalize=True).map("{:.1%}".format))
print("-"*60)
print("Numero de vez que a amostra mudou de emprego")
print(df.Mudanca_emprego.value_counts(normalize=True).map("{:.1%}".format))
print("-"*60)
print("Tempo de casa das amostra")
print(df.Tempo_carteira.value_counts(normalize=True).map("{:.1%}".format))
print("-"*60)
print("Classificação da amostra")
print(df.Classificacão.value_counts(normalize=True).map("{:.1%}".format))
print("-"*60)
print("Numero de funcionario autonomo")
print(df.autonomo.value_counts(normalize=True).map("{:.1%}".format))
print("-"*60)
print("Numero sobre desemprenho afetado pela liderança")
print(df.Desempelho_lider.value_counts(normalize=True).map("{:.1%}".format))
faixa etária de idade das amostras
Entre 19 a 25 anos    49.2%
Entre 26 a 30 anos    24.6%
Entre 31 a 40 anos    19.7%
+ 41 anos              4.9%
Entre 16 a 18 anos     1.6%
Name: Idade, dtype: object
------------------------------------------------------------
contar numero de Estado onde as amostras trabalham 
GO    90.2%
MG     3.3%
CE     1.6%
SC     1.6%
SP     1.6%
Df     1.6%
Name: Estado, dtype: object
------------------------------------------------------------
Meio de transporte que as amostras usa para ir trabalhar
Condução própria         65.6%
Andando                  16.4%
Transporte da empresa    13.1%
home office               3.3%
Transporte público        1.6%
Name: Meio_tranporte, dtype: object
------------------------------------------------------------
Tempo de deslocamento que as amostra usa para irem trabalhar
Meia hora             77.0%
Uma hora              13.1%
home office            6.6%
Mais de duas horas     1.6%
Uma hora e meia        1.6%
Name: Tempo_Deslocamento, dtype: object
------------------------------------------------------------
Area de atuação das amostras
Vendas                     14.8%
administração               3.3%
Financeiro                  3.3%
Limpeza                     3.3%
RH                          3.3%
Emplacamento                1.6%
Motorista                   1.6%
Professora                  1.6%
Professor                   1.6%
Design de sobrancelha       1.6%
Empresa Alimentícia         1.6%
Recepção                    1.6%
Financeira                  1.6%
TI, Ensino de idiomas       1.6%
Licenciatura                1.6%
Beleza                      1.6%
Automação                   1.6%
Corretora                   1.6%
Secretaria                  1.6%
Lavador                     1.6%
Caixa executivo             1.6%
Auxiliar de produção        1.6%
Industria                   1.6%
Auxiliar de sala            1.6%
Turismo                     1.6%
Estudante                   1.6%
Jurídica                    1.6%
Qualidade                   1.6%
Outras                      1.6%
Alimentos                   1.6%
Entregadora                 1.6%
Operador de produção        1.6%
Zootecnia                   1.6%
Adm, manutenção             1.6%
Pintura                     1.6%
Carpinteiro                 1.6%
Médico veterinário          1.6%
Atendimento                 1.6%
Auxiliar de secretaria      1.6%
Representante comercial     1.6%
Logística                   1.6%
TI                          1.6%
Agropecuária                1.6%
Educação                    1.6%
Reposição                   1.6%
Administrativo              1.6%
Serviço público             1.6%
Domestica e babá            1.6%
Administração               1.6%
Name: Area, dtype: object
------------------------------------------------------------
Faixa salarial das amostras
Menos de R$ 1.500,00                36.1%
Entre R$ 1.500,00 e R$ 2.000,00     24.6%
Entre R$ 2.001,00 a R$ 4000,00      23.0%
Estou desempregado                   8.2%
Entre R$ 4.001,00 a R$ 10.000,00     8.2%
Name: Renda_mensal, dtype: object
------------------------------------------------------------
Faixa de expectativa salarial após 5 anos
5000       18.0%
10000      18.0%
3000        8.2%
7000        6.6%
4000        6.6%
2500        4.9%
6000        4.9%
15000       4.9%
8000        4.9%
2000        4.9%
500000      3.3%
9000        1.6%
2400        1.6%
3500        1.6%
1000000     1.6%
2100        1.6%
2300        1.6%
12000       1.6%
600000      1.6%
4500        1.6%
Name: Expectativa_salarial, dtype: object
------------------------------------------------------------
Número de amostra que cotém renda extra
Não    75.4%
Sim    24.6%
Name: Renda_extra, dtype: object
------------------------------------------------------------
Número de amostra que acredita receber o salario suficiente
Não                   59.0%
Sim                   32.8%
Estou desempregado     8.2%
Name: Conformidade_salario, dtype: object
------------------------------------------------------------
Número de amostra que são ansiosos
Sim    86.9%
Não    13.1%
Name: Ansioso, dtype: object
------------------------------------------------------------
Número de amostra que são afetada pela ansiendade
Sim                62.3%
Não                24.6%
Não sou ansioso    13.1%
Name: Ansiendade_afeta, dtype: object
------------------------------------------------------------
Número de amostra que buscam aprimorar conhecimento
Sim                   95.1%
Não me sobra tempo     4.9%
Name: atv_extra, dtype: object
------------------------------------------------------------
Grau de escoladirade das amostra
Ensino Médio          47.5%
Ensino Superior       27.9%
Ensino Técnico        14.8%
Ensino fundamental     4.9%
Especialista           3.3%
Mestrado               1.6%
Name: Escolaridade, dtype: object
------------------------------------------------------------
Numero de amostra que acreditar sobre facilidade de relocação de emprego
Não    82.0%
Sim    18.0%
Name: Faci_relocacao, dtype: object
------------------------------------------------------------
Numero de vez que a amostra mudou de emprego
Até 3 vezes        73.8%
De 4 a 8 vezes     24.6%
De 9 a 12 vezes     1.6%
Name: Mudanca_emprego, dtype: object
------------------------------------------------------------
Tempo de casa das amostra
Mais de 36 meses             47.5%
Entre 12 meses a 24 meses    19.7%
Entre 24 meses a 36 meses    14.8%
Entre  6 a 12 meses          11.5%
Menos de 6 meses              6.6%
Name: Tempo_carteira, dtype: object
------------------------------------------------------------
Classificação da amostra
Generalista     72.1%
Especialista    27.9%
Name: Classificacão, dtype: object
------------------------------------------------------------
Numero de funcionario autonomo
Sim       65.6%
Talvez    18.0%
Não       16.4%
Name: autonomo, dtype: object
------------------------------------------------------------
Numero sobre desemprenho afetado pela liderança
Sim          50.8%
Em partes    32.8%
Não          16.4%
Name: Desempelho_lider, dtype: object

biblioteca de funções:¶

In [8]:
# biblioteca para guardar funções para o decorrer do código
def wordtex(coluna):
    text = list(coluna)
    text = " ".join(a for a in text)

    # lista de stopword
    stopwords = set(STOPWORDS)
    stopwords.update(["da", "meu", "em", "você", "de", "ao", "os", "falta"])

    # gerar uma wordcloud
    wordcloud = WordCloud(stopwords=stopwords,
                          background_color="black",
                          width=1600, height=800).generate(text)
    # mostrar a imagem final
    fig, ax = plt.subplots(figsize=(10,6))
    ax.imshow(wordcloud, interpolation='bilinear')
    ax.set_axis_off()

    plt.imshow(wordcloud);
    wordcloud.to_file("airbnb_summary_wordcloud.png")

    # definir função para diagrama de caixa
def diagrama_cx(coluna):
    fig, (ax1, ax2) = plt.subplots(1, 2)     # configuração do grafico
    fig.set_size_inches(15, 5)              # configuração do grafico
    sns.boxplot(x=coluna, ax=ax1)  
    ax2.set_xlim(limites(coluna))
    sns.boxplot(x=coluna, ax=ax2)
    
# definir função para histrograma
def histrograma(coluna):
    plt.figure(figsize=(15,5))                     # configuração do grafico
    sns.histplot(coluna, bins=50,  kde=True)     # grafico hitrograma 

    # definir limite para colunas
def limites(coluna):
    q1 = coluna.quantile(0.25)
    q3 = coluna.quantile(0.75)
    amplitude = q3 - q1
    return q1 - 1.5 * amplitude, q3 + 1.5 *amplitude

# definir função para excluir outliers
def excluir_outliers(base_d_dados, nome_coluna):
    qtd_linha = base_d_dados.shape[0]
    lim_inf, lim_sup = limites(base_d_dados[nome_coluna])
    base_d_dados = base_d_dados.loc[(base_d_dados[nome_coluna] >= lim_inf) & (base_d_dados[nome_coluna] <= lim_sup), :]
    linhas_removidas = qtd_linha - base_d_dados.shape[0]
    return base_d_dados, linhas_removidas

def grafico_barra(coluna):  
    plt.figure(figsize=(15, 5))
    ax = sns.barplot(x=coluna.value_counts().index, y=coluna.value_counts())
    ax.set_xlim(limites(coluna))
    
def valuecout (tabela, coluna):
    print(f" total {len(tabela[coluna])}")
    print(tabela[coluna].value_counts())
    print('%'*60)
    print(tabela[coluna].value_counts(normalize=True).map("{:.1%}".format))
    print('-'*60)

Qual os principais motivos que leva as amostra saírem, entrar ou mudar de emprego?¶

In [9]:
# nuvem de palavra para analisar os principais motivos que levam as amostras a entrar em uma empresa
# obs.: quanto maior a palavra mais vezes a palavra se repete
wordtex(df.Motiv_entrar)
In [10]:
# nuvem de palavra para analisar os principais motivos que levam as amostras a sair de uma empresa
wordtex(df.Motiv_sair)
In [11]:
# nuvem de palavra para analisar os principais motivos que levaram as amostras a mudarem de emprego
wordtex(df.mud_emprego)

Area ou cargo de atuação das amostras¶

In [12]:
# nuvem de palavra para analisar area de atuação de cada amostra
wordtex(df.Area)

Qual a faixa salarial por idade e escolaridade?¶

In [13]:
# separar data base com colunas para importante para chegar ao objetivo proposto

df2 = pd.DataFrame()
df2['escolaridade'] = df.Escolaridade
df2["faixa_idade"] = df.Idade
df2['faixa_salarial'] = df.Renda_mensal
df2['renda_extra'] = df.Renda_extra
df2["espectativa"] = df.Expectativa_salarial

# visualizar base de dados para análise
df2
Out[13]:
escolaridade faixa_idade faixa_salarial renda_extra espectativa
0 Ensino Médio Entre 19 a 25 anos Estou desempregado Sim 7000
1 Ensino Superior Entre 26 a 30 anos Menos de R$ 1.500,00 Não 8000
2 Ensino Médio Entre 31 a 40 anos Entre R$ 1.500,00 e R$ 2.000,00 Não 2500
3 Ensino Médio Entre 19 a 25 anos Menos de R$ 1.500,00 Não 2500
4 Ensino Médio Entre 31 a 40 anos Menos de R$ 1.500,00 Não 5000
... ... ... ... ... ...
56 Ensino Superior Entre 19 a 25 anos Menos de R$ 1.500,00 Sim 5000
57 Ensino Técnico Entre 31 a 40 anos Menos de R$ 1.500,00 Sim 6000
58 Ensino Técnico Entre 26 a 30 anos Entre R$ 1.500,00 e R$ 2.000,00 Não 4500
59 Ensino Superior Entre 26 a 30 anos Entre R$ 1.500,00 e R$ 2.000,00 Não 10000
60 Ensino Médio Entre 26 a 30 anos Menos de R$ 1.500,00 Não 3000

61 rows × 5 columns

In [14]:
# Analisa faixa de idade, salarial e de renda extra em relação à  nivel de Ensino Médio
em = df2.loc[df2.escolaridade == 'Ensino Médio']
valuecout(em, 'faixa_idade')
valuecout(em, 'faixa_salarial')
valuecout(em, 'renda_extra')
 total 29
Entre 19 a 25 anos    16
Entre 26 a 30 anos     6
Entre 31 a 40 anos     5
+ 41 anos              1
Entre 16 a 18 anos     1
Name: faixa_idade, dtype: int64
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Entre 19 a 25 anos    55.2%
Entre 26 a 30 anos    20.7%
Entre 31 a 40 anos    17.2%
+ 41 anos              3.4%
Entre 16 a 18 anos     3.4%
Name: faixa_idade, dtype: object
------------------------------------------------------------
 total 29
Menos de R$ 1.500,00               13
Entre R$ 1.500,00 e R$ 2.000,00     9
Entre R$ 2.001,00 a R$ 4000,00      4
Estou desempregado                  3
Name: faixa_salarial, dtype: int64
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Menos de R$ 1.500,00               44.8%
Entre R$ 1.500,00 e R$ 2.000,00    31.0%
Entre R$ 2.001,00 a R$ 4000,00     13.8%
Estou desempregado                 10.3%
Name: faixa_salarial, dtype: object
------------------------------------------------------------
 total 29
Não    23
Sim     6
Name: renda_extra, dtype: int64
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Não    79.3%
Sim    20.7%
Name: renda_extra, dtype: object
------------------------------------------------------------
In [15]:
# Analisa faixa de idade, salarial e de renda extra em relação à  nivel de Ensino Técnico
et = df2.loc[df2.escolaridade == 'Ensino Técnico']
valuecout(et, 'faixa_idade')
valuecout(et, 'faixa_salarial')
valuecout(et, 'renda_extra')
 total 9
Entre 19 a 25 anos    6
Entre 31 a 40 anos    2
Entre 26 a 30 anos    1
Name: faixa_idade, dtype: int64
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Entre 19 a 25 anos    66.7%
Entre 31 a 40 anos    22.2%
Entre 26 a 30 anos    11.1%
Name: faixa_idade, dtype: object
------------------------------------------------------------
 total 9
Menos de R$ 1.500,00               5
Entre R$ 1.500,00 e R$ 2.000,00    2
Estou desempregado                 1
Entre R$ 2.001,00 a R$ 4000,00     1
Name: faixa_salarial, dtype: int64
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Menos de R$ 1.500,00               55.6%
Entre R$ 1.500,00 e R$ 2.000,00    22.2%
Estou desempregado                 11.1%
Entre R$ 2.001,00 a R$ 4000,00     11.1%
Name: faixa_salarial, dtype: object
------------------------------------------------------------
 total 9
Não    5
Sim    4
Name: renda_extra, dtype: int64
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Não    55.6%
Sim    44.4%
Name: renda_extra, dtype: object
------------------------------------------------------------
In [16]:
# Analisa faixa de idade, salarial e de renda extra em relação à  nivel do Ensino Superior
es = df2.loc[df2.escolaridade == 'Ensino Superior']
valuecout(es, 'faixa_idade')
valuecout(es, 'faixa_salarial')
valuecout(es, 'renda_extra')
 total 17
Entre 19 a 25 anos    8
Entre 26 a 30 anos    6
Entre 31 a 40 anos    3
Name: faixa_idade, dtype: int64
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Entre 19 a 25 anos    47.1%
Entre 26 a 30 anos    35.3%
Entre 31 a 40 anos    17.6%
Name: faixa_idade, dtype: object
------------------------------------------------------------
 total 17
Entre R$ 2.001,00 a R$ 4000,00      8
Entre R$ 1.500,00 e R$ 2.000,00     3
Entre R$ 4.001,00 a R$ 10.000,00    3
Menos de R$ 1.500,00                2
Estou desempregado                  1
Name: faixa_salarial, dtype: int64
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Entre R$ 2.001,00 a R$ 4000,00      47.1%
Entre R$ 1.500,00 e R$ 2.000,00     17.6%
Entre R$ 4.001,00 a R$ 10.000,00    17.6%
Menos de R$ 1.500,00                11.8%
Estou desempregado                   5.9%
Name: faixa_salarial, dtype: object
------------------------------------------------------------
 total 17
Não    13
Sim     4
Name: renda_extra, dtype: int64
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Não    76.5%
Sim    23.5%
Name: renda_extra, dtype: object
------------------------------------------------------------
In [17]:
# Analisa faixa de idade, salarial e de renda extra em relação à  nivel do Ensino fundamental
ef = df2.loc[df2.escolaridade == 'Ensino fundamental']
valuecout(ef, 'faixa_idade')
valuecout(ef, 'faixa_salarial')
valuecout(ef, 'renda_extra')
 total 3
Entre 31 a 40 anos    1
+ 41 anos             1
Entre 26 a 30 anos    1
Name: faixa_idade, dtype: int64
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Entre 31 a 40 anos    33.3%
+ 41 anos             33.3%
Entre 26 a 30 anos    33.3%
Name: faixa_idade, dtype: object
------------------------------------------------------------
 total 3
Menos de R$ 1.500,00               2
Entre R$ 1.500,00 e R$ 2.000,00    1
Name: faixa_salarial, dtype: int64
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Menos de R$ 1.500,00               66.7%
Entre R$ 1.500,00 e R$ 2.000,00    33.3%
Name: faixa_salarial, dtype: object
------------------------------------------------------------
 total 3
Não    3
Name: renda_extra, dtype: int64
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Não    100.0%
Name: renda_extra, dtype: object
------------------------------------------------------------
In [18]:
# Analisa faixa de idade, salarial e de renda extra em relação à  nivel do Mestrado
m = df2.loc[df2.escolaridade == 'Mestrado']
valuecout(m, 'faixa_idade')
valuecout(m, 'faixa_salarial')
valuecout(m, 'renda_extra')
 total 1
+ 41 anos    1
Name: faixa_idade, dtype: int64
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ 41 anos    100.0%
Name: faixa_idade, dtype: object
------------------------------------------------------------
 total 1
Entre R$ 4.001,00 a R$ 10.000,00    1
Name: faixa_salarial, dtype: int64
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Entre R$ 4.001,00 a R$ 10.000,00    100.0%
Name: faixa_salarial, dtype: object
------------------------------------------------------------
 total 1
Não    1
Name: renda_extra, dtype: int64
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Não    100.0%
Name: renda_extra, dtype: object
------------------------------------------------------------
In [19]:
# Analisa faixa de idade, salarial e de renda extra em relação à  nivel do Especialista  
m = df2.loc[df2.escolaridade == 'Especialista']
valuecout(m, 'faixa_idade')
valuecout(m, 'faixa_salarial')
valuecout(m, 'renda_extra')
 total 2
Entre 26 a 30 anos    1
Entre 31 a 40 anos    1
Name: faixa_idade, dtype: int64
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Entre 26 a 30 anos    50.0%
Entre 31 a 40 anos    50.0%
Name: faixa_idade, dtype: object
------------------------------------------------------------
 total 2
Entre R$ 4.001,00 a R$ 10.000,00    1
Entre R$ 2.001,00 a R$ 4000,00      1
Name: faixa_salarial, dtype: int64
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Entre R$ 4.001,00 a R$ 10.000,00    50.0%
Entre R$ 2.001,00 a R$ 4000,00      50.0%
Name: faixa_salarial, dtype: object
------------------------------------------------------------
 total 2
Sim    1
Não    1
Name: renda_extra, dtype: int64
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Sim    50.0%
Não    50.0%
Name: renda_extra, dtype: object
------------------------------------------------------------

Se a ansiedade esta atrapalhando de forma negativa as pessoas no trabalho?¶

In [20]:
# filtrar a base de dados para analisar somente as amostra que são ansiosa
ans = df.loc[df.Ansioso == 'Sim']

# visualizar base de dados
ans.head(5)
Out[20]:
Idade Estado Meio_tranporte Tempo_Deslocamento Area Renda_mensal Expectativa_salarial Renda_extra Conformidade_salario Ansioso ... Escolaridade Motiv_entrar Motiv_sair mud_emprego Faci_relocacao Mudanca_emprego Tempo_carteira Classificacão autonomo Desempelho_lider
0 Entre 19 a 25 anos GO Condução própria home office Licenciatura Estou desempregado 7000 Sim Estou desempregado Sim ... Ensino Médio Salário, Inclusão, Valores, Beneficios Salário, Propósito, Falta de reconhecimento, E... Nunca trabalhei Não Até 3 vezes Menos de 6 meses Generalista Sim Sim
1 Entre 26 a 30 anos GO Transporte da empresa Meia hora Outras Menos de R$ 1.500,00 8000 Não Não Sim ... Ensino Superior Salário, Perspectivas de carreira Falta de reconhecimento Gestão desqualificada Não De 4 a 8 vezes Entre 12 meses a 24 meses Generalista Não Sim
2 Entre 31 a 40 anos GO Condução própria Meia hora Vendas Entre R$ 1.500,00 e R$ 2.000,00 2500 Não Sim Sim ... Ensino Médio Perspectivas de carreira Valores Gestão desqualificado Não Até 3 vezes Entre 12 meses a 24 meses Especialista Sim Em partes
3 Entre 19 a 25 anos GO Transporte da empresa Meia hora Alimentos Menos de R$ 1.500,00 2500 Não Não Sim ... Ensino Médio Salário, Perspectivas de carreira, Beneficios Falta de reconhecimento, Exploração de mão de ... Outra proposta Não Até 3 vezes Entre 6 a 12 meses Generalista Talvez Em partes
4 Entre 31 a 40 anos GO Condução própria Meia hora Entregadora Menos de R$ 1.500,00 5000 Não Não Sim ... Ensino Médio Beneficios Desvio de função, Falta de reconhecimento, Exp... Pandemia Não De 4 a 8 vezes Mais de 36 meses Generalista Não Sim

5 rows × 22 columns

In [21]:
# Analisa faixa de idade em relação se a ansiedade afeta ou não no dia-a-dia do trabalho

grafico = px.histogram(ans, x=['Idade'], color="Ansiendade_afeta", text_auto=True, color_discrete_sequence=["red", "black"])
grafico.show()
In [22]:
# Analisa faixa de escolaridade em relação se a ansiedade afeta ou não no dia-a-dia do trabalho
grafico = px.histogram(ans, x=['Escolaridade'], color="Ansiendade_afeta", text_auto=True, color_discrete_sequence=["black", "red"])
grafico.show()

Qual a expectativa salarial por idade e escolaridade?¶

In [23]:
# Separar base de dados com expectativa salarial, escolaridade para analisar ate chegar ao objetivo proposto
df_aux1 = pd.DataFrame()
df_aux1["expectativa_salarial"] = df.Expectativa_salarial
df_aux1["escolaridade"] = df.Escolaridade
df_aux1["idade"] = df.Idade

# visualizar base de dados
df_aux1.head(5)
Out[23]:
expectativa_salarial escolaridade idade
0 7000 Ensino Médio Entre 19 a 25 anos
1 8000 Ensino Superior Entre 26 a 30 anos
2 2500 Ensino Médio Entre 31 a 40 anos
3 2500 Ensino Médio Entre 19 a 25 anos
4 5000 Ensino Médio Entre 31 a 40 anos
In [24]:
# ver outliers da coluna de expectativa salarial, onde sera retirado os outlier para não ter erro na análise
diagrama_cx(df_aux1.expectativa_salarial)
histrograma(df_aux1.expectativa_salarial)
In [25]:
# Deletar outliers 
df_aux1, linhas_removida = excluir_outliers(df_aux1, "expectativa_salarial")
print('{} linhas removidas'.format(linhas_removida))
4 linhas removidas
In [26]:
# ver gráfico dados apos remover os outliers
diagrama_cx(df_aux1.expectativa_salarial)
histrograma(df_aux1.expectativa_salarial)
In [28]:
# visualisar as 5 primeiras linha da base de dados
df_aux1.head(5)
Out[28]:
expectativa_salarial escolaridade idade
0 7000 Ensino Médio Entre 19 a 25 anos
1 8000 Ensino Superior Entre 26 a 30 anos
2 2500 Ensino Médio Entre 31 a 40 anos
3 2500 Ensino Médio Entre 19 a 25 anos
4 5000 Ensino Médio Entre 31 a 40 anos
In [29]:
# análise da média da expectativa salarial por escolaridade
df_aux3 = df_aux1.groupby('escolaridade')['expectativa_salarial'].mean().reset_index()
pd.set_option('display.precision', 2)
df_aux3
Out[29]:
escolaridade expectativa_salarial
0 Ensino Médio 5257.69
1 Ensino Superior 8631.25
2 Ensino Técnico 4833.33
3 Ensino fundamental 4000.00
4 Especialista 10000.00
5 Mestrado 10000.00
In [30]:
# análise da média da expectativa salaria por idade
df_aux3 = df_aux1.groupby('idade')['expectativa_salarial'].mean().reset_index()
pd.set_option('display.precision', 2)
df_aux3
Out[30]:
idade expectativa_salarial
0 + 41 anos 6666.67
1 Entre 16 a 18 anos 2000.00
2 Entre 19 a 25 anos 6526.67
3 Entre 26 a 30 anos 6071.43
4 Entre 31 a 40 anos 6388.89

Analise perfil profissional¶

In [31]:
df3 = pd.DataFrame()
df3["idade"] = df.Idade
df3["meio_traporte"] = df.Meio_tranporte
df3["deslocamento"] = df.Tempo_Deslocamento
df3['conf_salario'] = df.Conformidade_salario
df3["classificacao"] = df.Classificacão
df3['relocação'] = df.Mudanca_emprego
df3["autonomo"] = df.autonomo
df3["lideranca"] = df.Desempelho_lider
df3["espectativa"] = df_aux1.expectativa_salarial
df3['index'] = 1
df3.head(5)
Out[31]:
idade meio_traporte deslocamento conf_salario classificacao relocação autonomo lideranca espectativa index
0 Entre 19 a 25 anos Condução própria home office Estou desempregado Generalista Até 3 vezes Sim Sim 7000.0 1
1 Entre 26 a 30 anos Transporte da empresa Meia hora Não Generalista De 4 a 8 vezes Não Sim 8000.0 1
2 Entre 31 a 40 anos Condução própria Meia hora Sim Especialista Até 3 vezes Sim Em partes 2500.0 1
3 Entre 19 a 25 anos Transporte da empresa Meia hora Não Generalista Até 3 vezes Talvez Em partes 2500.0 1
4 Entre 31 a 40 anos Condução própria Meia hora Não Generalista De 4 a 8 vezes Não Sim 5000.0 1
In [32]:
# Análise do tempo de deslocamento médio para se locomover ate o local de trabalho.
df3.groupby(['idade', 'deslocamento'])['index'].count().reset_index().transpose()
Out[32]:
0 1 2 3 4 5 6 7 8 9 10 11 12 13
idade + 41 anos + 41 anos Entre 16 a 18 anos Entre 19 a 25 anos Entre 19 a 25 anos Entre 19 a 25 anos Entre 19 a 25 anos Entre 26 a 30 anos Entre 26 a 30 anos Entre 26 a 30 anos Entre 31 a 40 anos Entre 31 a 40 anos Entre 31 a 40 anos Entre 31 a 40 anos
deslocamento Meia hora Uma hora Meia hora Mais de duas horas Meia hora Uma hora home office Meia hora Uma hora home office Meia hora Uma hora Uma hora e meia home office
index 2 1 1 1 23 4 2 12 2 1 9 1 1 1
In [33]:
# Análise do meio de transporte para se locomover ate o local de trabalho
df3.groupby(['idade', 'meio_traporte'])['index'].count().reset_index().transpose()
Out[33]:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
idade + 41 anos + 41 anos Entre 16 a 18 anos Entre 19 a 25 anos Entre 19 a 25 anos Entre 19 a 25 anos Entre 26 a 30 anos Entre 26 a 30 anos Entre 26 a 30 anos Entre 26 a 30 anos Entre 26 a 30 anos Entre 31 a 40 anos Entre 31 a 40 anos Entre 31 a 40 anos Entre 31 a 40 anos
meio_traporte Andando Condução própria Condução própria Andando Condução própria Transporte da empresa Andando Condução própria Transporte da empresa Transporte público home office Andando Condução própria Transporte da empresa home office
index 1 2 1 3 21 6 3 9 1 1 1 3 7 1 1
In [34]:
# Analise conformidade do salário em relação à idade
df3.groupby(['idade', 'conf_salario'])['index'].count().reset_index().transpose()
Out[34]:
0 1 2 3 4 5 6 7 8 9 10
idade + 41 anos + 41 anos Entre 16 a 18 anos Entre 19 a 25 anos Entre 19 a 25 anos Entre 19 a 25 anos Entre 26 a 30 anos Entre 26 a 30 anos Entre 26 a 30 anos Entre 31 a 40 anos Entre 31 a 40 anos
conf_salario Não Sim Não Estou desempregado Não Sim Estou desempregado Não Sim Não Sim
index 2 1 1 4 15 11 1 11 3 7 5
In [35]:
# Analise classificação especialista ou generalista por idade
df3.groupby(['idade', 'classificacao'])['index'].count().reset_index().transpose()
Out[35]:
0 1 2 3 4 5 6 7 8
idade + 41 anos + 41 anos Entre 16 a 18 anos Entre 19 a 25 anos Entre 19 a 25 anos Entre 26 a 30 anos Entre 26 a 30 anos Entre 31 a 40 anos Entre 31 a 40 anos
classificacao Especialista Generalista Especialista Especialista Generalista Especialista Generalista Especialista Generalista
index 1 2 1 9 21 4 11 2 10
In [36]:
# Analise quantidade de vez de troca de emprego por idade
df3.groupby(['idade', 'relocação'])['index'].count().reset_index().transpose()
Out[36]:
0 1 2 3 4 5 6 7 8 9
idade + 41 anos + 41 anos + 41 anos Entre 16 a 18 anos Entre 19 a 25 anos Entre 19 a 25 anos Entre 26 a 30 anos Entre 26 a 30 anos Entre 31 a 40 anos Entre 31 a 40 anos
relocação Até 3 vezes De 4 a 8 vezes De 9 a 12 vezes Até 3 vezes Até 3 vezes De 4 a 8 vezes Até 3 vezes De 4 a 8 vezes Até 3 vezes De 4 a 8 vezes
index 1 1 1 1 27 3 7 8 9 3
In [37]:
# Analise perfil profissional autônomo ou não
df3.groupby(['idade', 'autonomo'])['index'].count().reset_index().transpose()
Out[37]:
0 1 2 3 4 5 6 7 8 9
idade + 41 anos Entre 16 a 18 anos Entre 19 a 25 anos Entre 19 a 25 anos Entre 19 a 25 anos Entre 26 a 30 anos Entre 26 a 30 anos Entre 26 a 30 anos Entre 31 a 40 anos Entre 31 a 40 anos
autonomo Sim Sim Não Sim Talvez Não Sim Talvez Não Sim
index 3 1 4 18 8 2 10 3 4 8
In [38]:
# Analise se uma liderança afeta o desemprenho profissional ou não
df3.groupby(['idade', 'lideranca'])['index'].count().reset_index().transpose()
Out[38]:
0 1 2 3 4 5 6 7 8 9 10 11
idade + 41 anos + 41 anos Entre 16 a 18 anos Entre 19 a 25 anos Entre 19 a 25 anos Entre 19 a 25 anos Entre 26 a 30 anos Entre 26 a 30 anos Entre 26 a 30 anos Entre 31 a 40 anos Entre 31 a 40 anos Entre 31 a 40 anos
lideranca Em partes Sim Em partes Em partes Não Sim Em partes Não Sim Em partes Não Sim
index 1 2 1 9 6 15 5 1 9 4 3 5
In [39]:
# Análise de conformidade do salário em relação aos serviço prestado
df3.groupby(['idade', 'conf_salario'])['index'].count().reset_index().transpose()
Out[39]:
0 1 2 3 4 5 6 7 8 9 10
idade + 41 anos + 41 anos Entre 16 a 18 anos Entre 19 a 25 anos Entre 19 a 25 anos Entre 19 a 25 anos Entre 26 a 30 anos Entre 26 a 30 anos Entre 26 a 30 anos Entre 31 a 40 anos Entre 31 a 40 anos
conf_salario Não Sim Não Estou desempregado Não Sim Estou desempregado Não Sim Não Sim
index 2 1 1 4 15 11 1 11 3 7 5
In [42]:
# Analise estastica
expectativa_salarial = df3.groupby(['idade'])['espectativa'].describe().reset_index()
expectativa_salarial = expectativa_salarial.drop(columns=['std', '25%', '50%', '75%'])
expectativa_salarial
Out[42]:
idade count mean min max
0 + 41 anos 3.0 6666.67 5000.0 10000.0
1 Entre 16 a 18 anos 1.0 2000.00 2000.0 2000.0
2 Entre 19 a 25 anos 30.0 6526.67 2000.0 15000.0
3 Entre 26 a 30 anos 14.0 6071.43 2000.0 12000.0
4 Entre 31 a 40 anos 9.0 6388.89 2500.0 15000.0

Conclusão¶

Em breve¶